package com.dbms.parser.ast;

import com.dbms.common.Constants;
import com.dbms.common.Position;

/**
 * BackupNode (备份节点) 代表了 `BACKUP DATABASE TO '...'` 语句的抽象语法树 (AST) 结构。
 */
public class BackupNode extends StatementNode {
    /**
     * 备份文件要保存的目标文件路径。
     */
    private final String filePath;

    public BackupNode(Position position, String filePath) {
        super(position);
        this.filePath = filePath;
    }

    /**
     * 返回语句的类型标识。
     * @return "Backup" 常量
     */
    @Override
    public String getStatementType() {
        return Constants.STATEMENT_BACKUP;
    }

    /**
     * 获取备份文件的路径。
     * 这个方法还会移除从 SQL 解析出的路径字符串两端的单引号。
     * @return 清理后的文件路径字符串
     */
    public String getFilePath() {
        // 使用正则表达式移除字符串开头和结尾的单引号
        return filePath.replaceAll("^'|'$", "");
    }
}